﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using DTO_MechSys;

namespace DAL_MechSys
{
    public class DALOrdemDetalheProduto : DALBase
    {

        public DTOOrdemDetalheProduto Buscar(int OrdemDetalheProdutoID)
        {
            DTOOrdemDetalheProduto dtoOrdemDetalheProduto = new DTOOrdemDetalheProduto();
            try
            {
                string storedProssidere = "sp_BuscarOrdemDetalheProduto";
                SqlParameter[] parameters =

                        {                    
                           new SqlParameter("@OrdemDetalheProdutoID", OrdemDetalheProdutoID)                                    
                        };
                using (SqlDataReader sqlDataReader = ExecuteReader(storedProssidere, parameters))
                {
                    while (sqlDataReader.Read())
                    {	
                        dtoOrdemDetalheProduto.Desconto = (double.Parse(sqlDataReader["Desconto"].ToString()));
                        dtoOrdemDetalheProduto.PrecoUnitario = (double.Parse(sqlDataReader["PrecoUnitario"].ToString()));
                        dtoOrdemDetalheProduto.FuncionarioID = (Int32.Parse(sqlDataReader["FuncionarioID"].ToString()));
                        dtoOrdemDetalheProduto.OrdemDetalheProdutoID = (Int32.Parse(sqlDataReader["OrdemDetalheProdutoID"].ToString()));
                        dtoOrdemDetalheProduto.OrdemID = (Int32.Parse(sqlDataReader["OrdemID"].ToString()));
                        dtoOrdemDetalheProduto.OrdemPendenteID = (Int32.Parse(sqlDataReader["OrdemPendenteID"].ToString()));
                        dtoOrdemDetalheProduto.ProdutoID = (Int32.Parse(sqlDataReader["ProdutoID"].ToString()));
                        dtoOrdemDetalheProduto.Quantidade = (Int32.Parse(sqlDataReader["Quantidade"].ToString()));
                    }
                }

            }
            catch (SqlException)
            {
                throw;
            }
            return dtoOrdemDetalheProduto;

        }
        public void ExcluirID0()
        { 
            try
            {
                string storedProssidere = "sp_ExcluirOrdemDetalheProdutoID0";
                ExecuteNonQuery(storedProssidere);

            }

            catch (SqlException)
            {
                throw;
            }
        }


        public void Excluir(int OrdemDetalheProdutoID)
        {
            try
            {
                string storedProssidere = "sp_ExcluirOrdemDetalheProduto";
                SqlParameter[] parameters =

                        {                    
                           new SqlParameter("@OrdemDetalheProdutoID", OrdemDetalheProdutoID)                                    
                        };
                ExecuteNonQuery(storedProssidere, parameters);

            }

            catch (SqlException)
            {
                throw;
            }
        }

        public void Inserir(DTOOrdemDetalheProduto dtoOrdemDetalheProduto)
        {
            try
            {
                string storedProssidere = "sp_InserirOrdemDetalheProduto";
                SqlParameter[] parameters =
                
                { 
                   new SqlParameter("@OrdemID", dtoOrdemDetalheProduto.OrdemID),
                   new SqlParameter("@OrdemPendenteID", dtoOrdemDetalheProduto.OrdemPendenteID),
                   new SqlParameter("@ProdutoID", dtoOrdemDetalheProduto.ProdutoID),
                   new SqlParameter("@Quantidade", dtoOrdemDetalheProduto.Quantidade),
                   new SqlParameter("@PrecoUnitario", dtoOrdemDetalheProduto.PrecoUnitario),                       
                   new SqlParameter("@Desconto", dtoOrdemDetalheProduto.Desconto),
                   new SqlParameter("@FuncionarioID", dtoOrdemDetalheProduto.FuncionarioID),
                   new SqlParameter("@OrdemDetalheProdutoID", dtoOrdemDetalheProduto.OrdemDetalheProdutoID)

                };
                ExecuteNonQuery(storedProssidere, parameters);

            }

            catch (SqlException)
            {
                throw;
            }
        }

        public void Atualizar(DTOOrdemDetalheProduto dtoOrdemDetalheProduto)
        {
            try
            {
                string storedProssidere = "sp_AtualizarOrdemDetalheProduto";
                SqlParameter[] parameters =

                {                  
                   new SqlParameter("@OrdemID", dtoOrdemDetalheProduto.OrdemID),
                   new SqlParameter("@OrdemPendenteID", dtoOrdemDetalheProduto.OrdemPendenteID),
                   new SqlParameter("@ProdutoID", dtoOrdemDetalheProduto.ProdutoID),
                   new SqlParameter("@Quantidade", dtoOrdemDetalheProduto.Quantidade),
                   new SqlParameter("@PrecoUnitario", dtoOrdemDetalheProduto.PrecoUnitario),                       
                   new SqlParameter("@Desconto", dtoOrdemDetalheProduto.Desconto),
                   new SqlParameter("@FuncionarioID", dtoOrdemDetalheProduto.FuncionarioID),
                   new SqlParameter("@OrdemDetalheProdutoID", dtoOrdemDetalheProduto.OrdemDetalheProdutoID)         
                };
                ExecuteNonQuery(storedProssidere, parameters);

            }

            catch (SqlException)
            {
                throw;
            }
        }
    }
}
